Task: Implementar a Solução
Implementar o código fonte para fornecer uma nova funcionalidade ou para reparar algum defeito.
Disciplines: Desenvolvimento
Purpose

A finalidade desta tarefa é produzir uma implementação para uma parte da solução (tal como uma classe ou um componente), ou reparar um ou mais defeitos. Normalmente o resultado é um código fonte novo ou modificado, que normalmente é referenciado pela implementação.

Relationships
Main Description

Geralmente, esta tarefa é focada em um elemento específico, tal como uma classe ou um componente, mas não necessariamente precisa ser.

uma parcela do design é implementada ao executar esta tarefa. Esta tarefa pode ser executada várias vezes durante uma iteração. Na verdade, é melhor executar esta tarefa no menor escopo possível para estreitar o ciclo entre ela e as tarefas relacionadas com os testes de desenvolvedor e considerações sobre o design.

Steps
Determine uma estratégia

Determine uma estratégia, baseada no design e nos teste de desenvolvedor, indicando como você irá implementar a solução. As opções fundamentais são:

  1. Aplique recursos reutilizáveis existentes.
  2. Modele o design detalhadamente e gere o código fonte (pela transformação do modelo).
  3. Escreva o código fonte.
  4. Qualquer combinação das opções descritas.
Identifique oportunidades para reuso

Identifique algum código existente ou elementos de implementação que possa ser reutilizado em parte da Implementação que você esteja criando ou alterando. Uma compreensão detalhada de todo o design é muito útil porque é mais fácil encontrar oportunidades de reuso quando se tem uma completa compreensão da solução proposta.

Transforme o design em implementação

Se você estiver usando ferramentas de modelagem sofisticadas, poderá gerar uma parte do código fonte necessário a partir do modelo. Note que a programação é comumente necessária para terminar a implementação, após o modelo de design ter sido transformado em código.

Mesmo sem ferramentas, pode existir uma quantidade de código a ser criado pela verificação do design e dos testes de desenvolvedor.

Escreva o código fonte

Escreva o código fonte de forma que a implementação esteja em conformidade com o design e o comportamento desejados. Você deve tentar a reutilização ou a geração de código sempre que possível, mas ainda necessitará de alguma programação. Para isso, considere o seguinte:

  • Examine os requisitos. Pelo fato de algumas informações dos requisitos não se traduzirem diretamente em seu design você deve examinar os requisitos para se assegurar que eles estejam inteiramente contemplados na implementação.
  • Re-fatore o código para melhorar o design. A Re-fatoração é uma técnica onde a qualidade do código é melhorada através de mudanças pequenas e seguras.
  • Ajuste os resultados da implementação existente melhorando o desempenho, a interface de usuário, a segurança, e outras áreas não funcionais.
  • Adicione detalhes faltantes, tais como a conclusão da lógica das operações ou a adição de classes de suporte e estruturas de dados.
  • Cuide das condições limítrofes.
  • Trate as circunstâncias incomuns ou os estados de erro.
  • Restrinja o comportamento (impedindo que os usuários ou funções externas executem fluxos, cenários ou combinações de opções ilegais).
  • Adicione seções críticas para código multi-thread ou reentrante.

Embora diversas considerações estejam listadas aqui, existe um caminho claro para saber quando o código fonte esta pronto. A solução foi implementada quando ela passa pelos testes de desenvolvedor. Outras considerações podem cuidar da re-fatoração do código para melhorá-lo quando ele estiver completo e correto.

Avalie a implementação

Verifique que a implementação está ajustada à sua finalidade. Examine o código para determinar se ele executa a função desejada. Esta é uma etapa de garantia da qualidade que é executada além dos testes e está descrita em outras tarefas. Considere estas estratégias:

  • Programação em pares. Pela divisão da equipe em pares de implementadores, você avalia eficazmente o código assim que ele começa a ser escrito.
  • Leia o código para encontrar erros comuns. Considere manter uma lista de verificação dos erros encontrados para servir como uma memória de referência.
  • Use ferramentas para verificar erros de implementação e código impróprio. Por exemplo, use um verificador de regras de código estático ou ajuste o compilador para o nível mais detalhado de advertências.
  • Use ferramentas que possam visualizar o código. A visualização de código, tal como as visualizações UML na IDE Eclipse, ajudam os desenvolvedores a identificar questões tais como acoplamento excessivo ou dependências circulares.
  • Execute inspeções informais direcionadas ao código. Peça aos colegas para revisar pequenas seções críticas do código e código com funcionalidades significativas. Evite a revisão de grandes seções de código.
  • Use um Testador para assegurar que a implementação é compreensível e testável pelos recursos de teste.

Melhore a implementação baseada nos resultados destas avaliações.

Comunique decisões significantes

Comunique o impacto de mudanças inesperadas no design e nos requisitos.

As questões e as restrições descobertas durante a implementação do sistema devem ser comunicadas à equipe. O impacto das questões descobertas durante a implementação deve ser incorporado nas decisões futuras. Se for apropriado, atualize os requisitos para refletir as ambigüidades identificadas e resolvidas na implementação de modo que possam ser testadas, tornando possível controlar as expectativas dos Stakeholder. Similarmente, atualize o design para refletir novas restrições e questões descobertas durante a implementação para ter certeza que a nova informação será comunicada para os outros desenvolvedores.

Normalmente, não há necessidade de efetuar uma solicitação de mudança se a mudança requerida for pequena e a mesma pessoa estiver projetando e implementando o elemento de código. Esse indivíduo pode fazer a mudança no design diretamente. Se a mudança requerida tiver um grande impacto, pode ser necessário comunicar essa mudança aos outros membros da equipe através de uma solicitação de mudança.

Key Considerations

É melhor quando os testes de desenvolvedor já existem, de forma que haja uma definição inequívoca do que é considerado comportamento correto. A implementação deverá ser testada imediatamente.

More Information